package com.example.qqviewspringboot.service;

import com.example.qqviewspringboot.data.User;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Optional;

public interface UserService {

    // 注册用户
    User registerUser(User user);

    // 登录用户
    Optional<User> loginUser(String username, String password);

    // 获取用户信息
    Optional<User> getUserInfo(Long userId);

    // 更新用户名
    void updateUserInfo(Long userId, String newUsername);

    // 更新用户头像
    void updateUserAvatar(Long userId, String avatarUri);

    // 获取所有用户列表
    List<User> getAllUsers();

    // 根据用户ID获取用户名
    String getUserNameById(Long userId);

    /**
     * 上传用户头像
     *
     * @param userId 用户ID
     * @param file   头像文件
     * @return 上传后的头像URL
     */
    String uploadAvatar(Long userId, MultipartFile file);

    /**
     * 上传用户背景图片
     *
     * @param userId 用户ID
     * @param file   背景图片文件
     * @return 上传后的背景图片URL
     */
    String uploadBackground(Long userId, MultipartFile file);

    /**
     * 根据用户ID获取User对象
     *
     * @param userId 用户ID
     * @return User对象
     */
    User getUserById(Long userId);
}
